﻿// See https://aka.ms/new-console-template for more information
// Console.WriteLine("Hello, World!");
// var arr= new List<string> ();
// arr.Add("1");
// // 删除第一个
// arr.RemoveAt(1);
// arr.AddRange(["1","2"]);
// System.Console.WriteLine(arr);
// ==========================================================开始===================================================================
// 使用liqn进行查询
// 修正1：类定义需用分号结束属性声明
// 数据源
// public class Goods {
//     public int Id { get; set; }  // 修正2：属性声明需用分号
//     public string Name { get; set; }
//     public int Price { get; set; }  // 修正3：拼写错误"plice"→"Price"
//     public int Num { get; set; }
// }

// class Program {
//     static void Main() {
//         // 修正4：List首字母大写，使用英文冒号
//         var goodsArr = new List<Goods> {
//             new Goods { Id = 1, Name = "苹果", Price = 100, Num = 20 },
//             new Goods { Id = 2, Name = "苹果1", Price = 10, Num = 200 }
//         };
// // 编写
//         var query = from g in goodsArr
//                    where g.Price > 10
//                    select g;
// // 查询
//         foreach (var item in query) {
//             Console.WriteLine($"ID:{item.Id} 名称:{item.Name}");  // 修正5：需指定输出格式
//         }
//     }
// }
// Program表示电脑的程序
// ==========================================================结束===================================================================



// ==========================================================函数动作开始===================================================================

// 函数（方法）部分
// 方法参数练习
// 题目：编写一个方法PrintStudentInfo，接收以下参数：
// string name：学生姓名
// int age：学生年龄
// string major：学生专业（可选参数，默认值为"未指定"）
// params string[] hobbies：学生爱好（可变参数）
// 方法的功能是打印学生的信息，格式如下：
// 学生姓名：[name]
// 学生年龄：[age]
// 学生专业：[major]
// 学生爱好：[hobby1]、[hobby2]、...
// 要求：在主程序中调用该方法，分别传入以下参数：
// 姓名"张三"，年龄20，专业"计算机科学"，爱好"编程"、"阅读"。
// 姓名"李四"，年龄21，爱好"运动"。
// 姓名"王五"，年龄19。
// 方法返回值练习
// 题目：编写一个方法CalculateRectangleArea，接收两个参数double length（长）和double width（宽），返回长方形的面积。
// 然后编写一个方法CalculateRectanglePerimeter，接收同样的两个参数，返回长方形的周长。
// 要求：在主程序中调用这两个方法，分别计算长为5.0、宽为3.0的长方形的面积和周长，并打印结果。

// using System;

// class Program
// {
//     static void PrintStudentInfo(string name, int age, string major = "未指定", params string[] hobbies)
//     {
//         Console.WriteLine("姓名：" + name);
//         Console.WriteLine("年龄：" + age);
//         Console.WriteLine("专业：" + major);
        
//         var res = string.Join("、", hobbies);
//         if (hobbies.Length > 0)
//         {
//             Console.WriteLine("爱好：" + res);
//         }

//     }



//         static double CalculateRectangleArea(double length,double width){
//             return length*width;
//         }
//          static double CalculateRectanglePerimeter(double length,double width){
//             return 2*(length+width);
//         }
//     static void Main(string[] args)
//     {
//         // PrintStudentInfo("张三", 20, "计算机科学", "编程", "阅读");
//         // PrintStudentInfo("李四", 21,hobbies:"运动");
       
//         System.Console.WriteLine( CalculateRectangleArea(5.0,3.0));
//         System.Console.WriteLine( CalculateRectanglePerimeter(5.0,3.0));
//     }
// }


// ==========================================================函数动作结束===================================================================




// ==========================================================查询动作开始===================================================================
// 简单查询练习
// 题目：创建一个List<Student>集合，其中Student是一个自定义类，包含以下属性：
// string Name：学生姓名
// int Age：学生年龄
// double Score：学生成绩
// 集合中包含以下学生数据：
// 姓名"张三"，年龄20，成绩85.5
// 姓名"李四"，年龄21，成绩90.0
// 姓名"王五"，年龄19，成绩78.0
// 姓名"赵六"，年龄22，成绩88.5
// 使用Linq查询语句完成以下操作：
// 查询年龄大于20岁的学生，并打印他们的姓名和成绩。
// 查询成绩大于85分的学生，并按成绩降序排序，打印他们的姓名和成绩。
// 要求：使用Linq的查询语法和方法语法分别实现上述查询，并展示查询结果。
// 分组查询练习
// 题目：继续使用上题中的List<Student>集合。
// 使用Linq查询语句按学生的年龄分组，然后计算每个年龄组的平均成绩，并打印每个年龄组的年龄和对应的平均成绩。
// 要求：使用Linq的GroupBy方法进行分组，并使用Select方法计算每个分组的平均成绩，展示查询结果。
public class Student
{
    public string Name{get;set;}
    public int Age{get;set;}
    public double Score{get;set;}

}
class Program
{
    static void Main(){
        var studentaArr=new List<Student>(
new Student{"张三"，20,85.5},
new Student{"李四"，20,90.0},
new Student{"王五"，19,78.0},
new Student{"赵六"，19,78.0}
        )
    }
}

// ==========================================================查询动作结束===================================================================